package client.common;
import org.stjs.javascript.annotation.STJSBridge;
import org.stjs.javascript.Array;
import client.common.javascript.*;
import client.common.angular.*;
import client.common.Models.*;
import vos.*;

@STJSBridge
public interface EndPoints{
    			public static interface AcudienteEP {
		public Array<Estudiante> getEstudiantes();
		public Array<Estudiante> getEstudiantes(JsProcedure1<Array<Estudiante>> callback);
		public Array<Estudiante> getEstudiantes(JsProcedure1<Array<Estudiante>> callback,JsProcedure1<ErrorObject> error);

		public Curso getCursoEstudiante(Long idEstudiante, Long idCalendarioAcademico);
		public Curso getCursoEstudiante(Long idEstudiante, Long idCalendarioAcademico, JsProcedure1<Curso> callback);
		public Curso getCursoEstudiante(Long idEstudiante, Long idCalendarioAcademico, JsProcedure1<Curso> callback,JsProcedure1<ErrorObject> error);

		public Colegio getColegioEstudiante(Long idEstudiante);
		public Colegio getColegioEstudiante(Long idEstudiante, JsProcedure1<Colegio> callback);
		public Colegio getColegioEstudiante(Long idEstudiante, JsProcedure1<Colegio> callback,JsProcedure1<ErrorObject> error);

		public Array<Materia> getMateriasGrado(Long idGrado, Long idCalendarioAcademico);
		public Array<Materia> getMateriasGrado(Long idGrado, Long idCalendarioAcademico, JsProcedure1<Array<Materia>> callback);
		public Array<Materia> getMateriasGrado(Long idGrado, Long idCalendarioAcademico, JsProcedure1<Array<Materia>> callback,JsProcedure1<ErrorObject> error);

		public Array<Periodo> getPeriodosCalendario(Long idCalendarioAcademico);
		public Array<Periodo> getPeriodosCalendario(Long idCalendarioAcademico, JsProcedure1<Array<Periodo>> callback);
		public Array<Periodo> getPeriodosCalendario(Long idCalendarioAcademico, JsProcedure1<Array<Periodo>> callback,JsProcedure1<ErrorObject> error);

		public Array<CalificacionPeriodo> getCalificacionesCalendario(Long idEstudiante, Long idMateria, Long idCalendarioAcademico);
		public Array<CalificacionPeriodo> getCalificacionesCalendario(Long idEstudiante, Long idMateria, Long idCalendarioAcademico, JsProcedure1<Array<CalificacionPeriodo>> callback);
		public Array<CalificacionPeriodo> getCalificacionesCalendario(Long idEstudiante, Long idMateria, Long idCalendarioAcademico, JsProcedure1<Array<CalificacionPeriodo>> callback,JsProcedure1<ErrorObject> error);

		public Array<Indicador> getIndicadoresPeriodo(Long idEstudiante, Long idMateria, Long idPeriodo);
		public Array<Indicador> getIndicadoresPeriodo(Long idEstudiante, Long idMateria, Long idPeriodo, JsProcedure1<Array<Indicador>> callback);
		public Array<Indicador> getIndicadoresPeriodo(Long idEstudiante, Long idMateria, Long idPeriodo, JsProcedure1<Array<Indicador>> callback,JsProcedure1<ErrorObject> error);

		public Array<Mensaje> getMensajes(Long since, Long util);
		public Array<Mensaje> getMensajes(Long since, Long util, JsProcedure1<Array<Mensaje>> callback);
		public Array<Mensaje> getMensajes(Long since, Long util, JsProcedure1<Array<Mensaje>> callback,JsProcedure1<ErrorObject> error);
}
	public static interface CoordinadorEP {
		public Array<Estudiante> getEstudiantes(String query);
		public Array<Estudiante> getEstudiantes(String query, JsProcedure1<Array<Estudiante>> callback);
		public Array<Estudiante> getEstudiantes(String query, JsProcedure1<Array<Estudiante>> callback,JsProcedure1<ErrorObject> error);

		public Array<String> goNext();
		public Array<String> goNext(JsProcedure1<Array<String>> callback);
		public Array<String> goNext(JsProcedure1<Array<String>> callback,JsProcedure1<ErrorObject> error);

		public Estudiante newEstudiante(Estudiante body);
		public Estudiante newEstudiante(Estudiante body, JsProcedure1<Estudiante> callback);
		public Estudiante newEstudiante(Estudiante body, JsProcedure1<Estudiante> callback,JsProcedure1<ErrorObject> error);

		public Array<Grado> getGrados();
		public Array<Grado> getGrados(JsProcedure1<Array<Grado>> callback);
		public Array<Grado> getGrados(JsProcedure1<Array<Grado>> callback,JsProcedure1<ErrorObject> error);

		public Array<Curso> getCursosGrado(Long idGrado);
		public Array<Curso> getCursosGrado(Long idGrado, JsProcedure1<Array<Curso>> callback);
		public Array<Curso> getCursosGrado(Long idGrado, JsProcedure1<Array<Curso>> callback,JsProcedure1<ErrorObject> error);

		public Curso newCurso(Curso body);
		public Curso newCurso(Curso body, JsProcedure1<Curso> callback);
		public Curso newCurso(Curso body, JsProcedure1<Curso> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise deleteCurso(Long idCurso);
		public EmptyPromise deleteCurso(Long idCurso, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise deleteCurso(Long idCurso, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public Curso getCurso(Long idCurso);
		public Curso getCurso(Long idCurso, JsProcedure1<Curso> callback);
		public Curso getCurso(Long idCurso, JsProcedure1<Curso> callback,JsProcedure1<ErrorObject> error);

		public Array<MateriaCurso> getMateriasCurso(Long idCurso);
		public Array<MateriaCurso> getMateriasCurso(Long idCurso, JsProcedure1<Array<MateriaCurso>> callback);
		public Array<MateriaCurso> getMateriasCurso(Long idCurso, JsProcedure1<Array<MateriaCurso>> callback,JsProcedure1<ErrorObject> error);

		public Array<Profesor> getProfesores();
		public Array<Profesor> getProfesores(JsProcedure1<Array<Profesor>> callback);
		public Array<Profesor> getProfesores(JsProcedure1<Array<Profesor>> callback,JsProcedure1<ErrorObject> error);

		public Array<Secretario> getSecretarios();
		public Array<Secretario> getSecretarios(JsProcedure1<Array<Secretario>> callback);
		public Array<Secretario> getSecretarios(JsProcedure1<Array<Secretario>> callback,JsProcedure1<ErrorObject> error);

		public Profesor newProfesor(Profesor body);
		public Profesor newProfesor(Profesor body, JsProcedure1<Profesor> callback);
		public Profesor newProfesor(Profesor body, JsProcedure1<Profesor> callback,JsProcedure1<ErrorObject> error);

		public Secretario newSecretario(Secretario body);
		public Secretario newSecretario(Secretario body, JsProcedure1<Secretario> callback);
		public Secretario newSecretario(Secretario body, JsProcedure1<Secretario> callback,JsProcedure1<ErrorObject> error);

		public Orientador newOrientador(Orientador body);
		public Orientador newOrientador(Orientador body, JsProcedure1<Orientador> callback);
		public Orientador newOrientador(Orientador body, JsProcedure1<Orientador> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise updateMateriaCurso(MateriaCurso body);
		public EmptyPromise updateMateriaCurso(MateriaCurso body, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise updateMateriaCurso(MateriaCurso body, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise updateCurso(Long idCurso, Curso body);
		public EmptyPromise updateCurso(Long idCurso, Curso body, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise updateCurso(Long idCurso, Curso body, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public Matricula newMatricula(Matricula body);
		public Matricula newMatricula(Matricula body, JsProcedure1<Matricula> callback);
		public Matricula newMatricula(Matricula body, JsProcedure1<Matricula> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise updateEstudiante(Long idEstudiante, Estudiante body);
		public EmptyPromise updateEstudiante(Long idEstudiante, Estudiante body, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise updateEstudiante(Long idEstudiante, Estudiante body, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise updatePersona(Long idPersona, Persona body);
		public EmptyPromise updatePersona(Long idPersona, Persona body, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise updatePersona(Long idPersona, Persona body, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public Array<Materia> getMaterias();
		public Array<Materia> getMaterias(JsProcedure1<Array<Materia>> callback);
		public Array<Materia> getMaterias(JsProcedure1<Array<Materia>> callback,JsProcedure1<ErrorObject> error);

		public CalendarioAcademico getCalendarioAcademicoActual();
		public CalendarioAcademico getCalendarioAcademicoActual(JsProcedure1<CalendarioAcademico> callback);
		public CalendarioAcademico getCalendarioAcademicoActual(JsProcedure1<CalendarioAcademico> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise updateCalendarioAcademico(Long idCalendarioAcademico, CalendarioAcademico body);
		public EmptyPromise updateCalendarioAcademico(Long idCalendarioAcademico, CalendarioAcademico body, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise updateCalendarioAcademico(Long idCalendarioAcademico, CalendarioAcademico body, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public Array<Estudiante> getEstudiantesCurso(Long idCurso);
		public Array<Estudiante> getEstudiantesCurso(Long idCurso, JsProcedure1<Array<Estudiante>> callback);
		public Array<Estudiante> getEstudiantesCurso(Long idCurso, JsProcedure1<Array<Estudiante>> callback,JsProcedure1<ErrorObject> error);
}
	public static interface MensajeriaEP {
		public Mensaje sendMessage(Mensaje body);
		public Mensaje sendMessage(Mensaje body, JsProcedure1<Mensaje> callback);
		public Mensaje sendMessage(Mensaje body, JsProcedure1<Mensaje> callback,JsProcedure1<ErrorObject> error);

		public Mensaje otraCosa(Long idColegio, Mensaje body);
		public Mensaje otraCosa(Long idColegio, Mensaje body, JsProcedure1<Mensaje> callback);
		public Mensaje otraCosa(Long idColegio, Mensaje body, JsProcedure1<Mensaje> callback,JsProcedure1<ErrorObject> error);
}
	public static interface ProfesorEP {
		public Array<MateriaGrado> getMateriasGrado();
		public Array<MateriaGrado> getMateriasGrado(JsProcedure1<Array<MateriaGrado>> callback);
		public Array<MateriaGrado> getMateriasGrado(JsProcedure1<Array<MateriaGrado>> callback,JsProcedure1<ErrorObject> error);

		public Array<Grado> getGrados();
		public Array<Grado> getGrados(JsProcedure1<Array<Grado>> callback);
		public Array<Grado> getGrados(JsProcedure1<Array<Grado>> callback,JsProcedure1<ErrorObject> error);

		public Curso getCurso(Long idCurso);
		public Curso getCurso(Long idCurso, JsProcedure1<Curso> callback);
		public Curso getCurso(Long idCurso, JsProcedure1<Curso> callback,JsProcedure1<ErrorObject> error);

		public Array<Materia> getMaterias();
		public Array<Materia> getMaterias(JsProcedure1<Array<Materia>> callback);
		public Array<Materia> getMaterias(JsProcedure1<Array<Materia>> callback,JsProcedure1<ErrorObject> error);

		public Array<Estudiante> getEstudiantesCurso(Long idCurso);
		public Array<Estudiante> getEstudiantesCurso(Long idCurso, JsProcedure1<Array<Estudiante>> callback);
		public Array<Estudiante> getEstudiantesCurso(Long idCurso, JsProcedure1<Array<Estudiante>> callback,JsProcedure1<ErrorObject> error);

		public Array<MateriaCurso> getMisAsignaturas();
		public Array<MateriaCurso> getMisAsignaturas(JsProcedure1<Array<MateriaCurso>> callback);
		public Array<MateriaCurso> getMisAsignaturas(JsProcedure1<Array<MateriaCurso>> callback,JsProcedure1<ErrorObject> error);

		public Array<MateriaCurso> getCalificacionesPeriodo(Long idMateria, Long idCurso);
		public Array<MateriaCurso> getCalificacionesPeriodo(Long idMateria, Long idCurso, JsProcedure1<Array<MateriaCurso>> callback);
		public Array<MateriaCurso> getCalificacionesPeriodo(Long idMateria, Long idCurso, JsProcedure1<Array<MateriaCurso>> callback,JsProcedure1<ErrorObject> error);

		public Array<CalificacionPeriodo> getCalificacionesPeriodos(Long idMateria, Long idCurso);
		public Array<CalificacionPeriodo> getCalificacionesPeriodos(Long idMateria, Long idCurso, JsProcedure1<Array<CalificacionPeriodo>> callback);
		public Array<CalificacionPeriodo> getCalificacionesPeriodos(Long idMateria, Long idCurso, JsProcedure1<Array<CalificacionPeriodo>> callback,JsProcedure1<ErrorObject> error);

		public Array<Indicador> getIndicadores(Long idMateria, Long idGrado);
		public Array<Indicador> getIndicadores(Long idMateria, Long idGrado, JsProcedure1<Array<Indicador>> callback);
		public Array<Indicador> getIndicadores(Long idMateria, Long idGrado, JsProcedure1<Array<Indicador>> callback,JsProcedure1<ErrorObject> error);

		public Indicador newIndicador(Long idMateria, Long idGrado, Indicador body);
		public Indicador newIndicador(Long idMateria, Long idGrado, Indicador body, JsProcedure1<Indicador> callback);
		public Indicador newIndicador(Long idMateria, Long idGrado, Indicador body, JsProcedure1<Indicador> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise updateIndicador(Long idMateria, Long idGrado, String categoria, Integer consecutivo, Indicador body);
		public EmptyPromise updateIndicador(Long idMateria, Long idGrado, String categoria, Integer consecutivo, Indicador body, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise updateIndicador(Long idMateria, Long idGrado, String categoria, Integer consecutivo, Indicador body, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise deleteIndicador(Long idMateria, Long idGrado, String categoria, Integer consecutivo);
		public EmptyPromise deleteIndicador(Long idMateria, Long idGrado, String categoria, Integer consecutivo, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise deleteIndicador(Long idMateria, Long idGrado, String categoria, Integer consecutivo, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public Array<IndicadorEstudiantePeriodo> getIndicadoresEstudiantes(Long idCurso, Long idMateria);
		public Array<IndicadorEstudiantePeriodo> getIndicadoresEstudiantes(Long idCurso, Long idMateria, JsProcedure1<Array<IndicadorEstudiantePeriodo>> callback);
		public Array<IndicadorEstudiantePeriodo> getIndicadoresEstudiantes(Long idCurso, Long idMateria, JsProcedure1<Array<IndicadorEstudiantePeriodo>> callback,JsProcedure1<ErrorObject> error);

		public IndicadorEstudiantePeriodo newIndicadorEstudiante(IndicadorEstudiantePeriodo body);
		public IndicadorEstudiantePeriodo newIndicadorEstudiante(IndicadorEstudiantePeriodo body, JsProcedure1<IndicadorEstudiantePeriodo> callback);
		public IndicadorEstudiantePeriodo newIndicadorEstudiante(IndicadorEstudiantePeriodo body, JsProcedure1<IndicadorEstudiantePeriodo> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise deleteIndicadorEstudiante(Long idEstudiante, Long idMateria, Long idGrado, String categoria, Integer consecutivo);
		public EmptyPromise deleteIndicadorEstudiante(Long idEstudiante, Long idMateria, Long idGrado, String categoria, Integer consecutivo, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise deleteIndicadorEstudiante(Long idEstudiante, Long idMateria, Long idGrado, String categoria, Integer consecutivo, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public CalificacionPeriodo setCalificacionPeriodo(CalificacionPeriodo body);
		public CalificacionPeriodo setCalificacionPeriodo(CalificacionPeriodo body, JsProcedure1<CalificacionPeriodo> callback);
		public CalificacionPeriodo setCalificacionPeriodo(CalificacionPeriodo body, JsProcedure1<CalificacionPeriodo> callback,JsProcedure1<ErrorObject> error);

		public Profesor getMyInfo();
		public Profesor getMyInfo(JsProcedure1<Profesor> callback);
		public Profesor getMyInfo(JsProcedure1<Profesor> callback,JsProcedure1<ErrorObject> error);

		public Array<Curso> getCursos();
		public Array<Curso> getCursos(JsProcedure1<Array<Curso>> callback);
		public Array<Curso> getCursos(JsProcedure1<Array<Curso>> callback,JsProcedure1<ErrorObject> error);
}
	public static interface SupadminEP {
		public Array<Materia> getMateriasGrado(Long idGrado, Long idColegio);
		public Array<Materia> getMateriasGrado(Long idGrado, Long idColegio, JsProcedure1<Array<Materia>> callback);
		public Array<Materia> getMateriasGrado(Long idGrado, Long idColegio, JsProcedure1<Array<Materia>> callback,JsProcedure1<ErrorObject> error);

		public Colegio getColegio(Long idColegio);
		public Colegio getColegio(Long idColegio, JsProcedure1<Colegio> callback);
		public Colegio getColegio(Long idColegio, JsProcedure1<Colegio> callback,JsProcedure1<ErrorObject> error);

		public Array<String> goNext(Long idColegio);
		public Array<String> goNext(Long idColegio, JsProcedure1<Array<String>> callback);
		public Array<String> goNext(Long idColegio, JsProcedure1<Array<String>> callback,JsProcedure1<ErrorObject> error);

		public Array<Grado> getGradosColegio(Long idColegio);
		public Array<Grado> getGradosColegio(Long idColegio, JsProcedure1<Array<Grado>> callback);
		public Array<Grado> getGradosColegio(Long idColegio, JsProcedure1<Array<Grado>> callback,JsProcedure1<ErrorObject> error);

		public Array<Profesor> getProfesores(Long idColegio);
		public Array<Profesor> getProfesores(Long idColegio, JsProcedure1<Array<Profesor>> callback);
		public Array<Profesor> getProfesores(Long idColegio, JsProcedure1<Array<Profesor>> callback,JsProcedure1<ErrorObject> error);

		public Array<Secretario> getSecretarios(Long idColegio);
		public Array<Secretario> getSecretarios(Long idColegio, JsProcedure1<Array<Secretario>> callback);
		public Array<Secretario> getSecretarios(Long idColegio, JsProcedure1<Array<Secretario>> callback,JsProcedure1<ErrorObject> error);

		public Profesor newProfesor(Long idColegio, Profesor body);
		public Profesor newProfesor(Long idColegio, Profesor body, JsProcedure1<Profesor> callback);
		public Profesor newProfesor(Long idColegio, Profesor body, JsProcedure1<Profesor> callback,JsProcedure1<ErrorObject> error);

		public Secretario newSecretario(Long idColegio, Secretario body);
		public Secretario newSecretario(Long idColegio, Secretario body, JsProcedure1<Secretario> callback);
		public Secretario newSecretario(Long idColegio, Secretario body, JsProcedure1<Secretario> callback,JsProcedure1<ErrorObject> error);

		public Orientador newOrientador(Long idColegio, Orientador body);
		public Orientador newOrientador(Long idColegio, Orientador body, JsProcedure1<Orientador> callback);
		public Orientador newOrientador(Long idColegio, Orientador body, JsProcedure1<Orientador> callback,JsProcedure1<ErrorObject> error);

		public Array<Materia> getMateriasColegio(Long idColegio);
		public Array<Materia> getMateriasColegio(Long idColegio, JsProcedure1<Array<Materia>> callback);
		public Array<Materia> getMateriasColegio(Long idColegio, JsProcedure1<Array<Materia>> callback,JsProcedure1<ErrorObject> error);

		public Array<Colegio> getColegios();
		public Array<Colegio> getColegios(JsProcedure1<Array<Colegio>> callback);
		public Array<Colegio> getColegios(JsProcedure1<Array<Colegio>> callback,JsProcedure1<ErrorObject> error);

		public Colegio newColegio(Colegio body);
		public Colegio newColegio(Colegio body, JsProcedure1<Colegio> callback);
		public Colegio newColegio(Colegio body, JsProcedure1<Colegio> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise updateColegio(Long idColegio, Colegio body);
		public EmptyPromise updateColegio(Long idColegio, Colegio body, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise updateColegio(Long idColegio, Colegio body, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public Array<Orientador> getOrientadores(Long idColegio);
		public Array<Orientador> getOrientadores(Long idColegio, JsProcedure1<Array<Orientador>> callback);
		public Array<Orientador> getOrientadores(Long idColegio, JsProcedure1<Array<Orientador>> callback,JsProcedure1<ErrorObject> error);

		public Array<Coordinador> getCoordinadores(Long idColegio);
		public Array<Coordinador> getCoordinadores(Long idColegio, JsProcedure1<Array<Coordinador>> callback);
		public Array<Coordinador> getCoordinadores(Long idColegio, JsProcedure1<Array<Coordinador>> callback,JsProcedure1<ErrorObject> error);

		public Coordinador newCoordinador(Long idColegio, Coordinador body);
		public Coordinador newCoordinador(Long idColegio, Coordinador body, JsProcedure1<Coordinador> callback);
		public Coordinador newCoordinador(Long idColegio, Coordinador body, JsProcedure1<Coordinador> callback,JsProcedure1<ErrorObject> error);

		public Materia newMateriaColegio(Materia body);
		public Materia newMateriaColegio(Materia body, JsProcedure1<Materia> callback);
		public Materia newMateriaColegio(Materia body, JsProcedure1<Materia> callback,JsProcedure1<ErrorObject> error);

		public Grado newGradoColegio(Grado body);
		public Grado newGradoColegio(Grado body, JsProcedure1<Grado> callback);
		public Grado newGradoColegio(Grado body, JsProcedure1<Grado> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise deleteMateriaColegio(Long idMateria, Long idColegio);
		public EmptyPromise deleteMateriaColegio(Long idMateria, Long idColegio, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise deleteMateriaColegio(Long idMateria, Long idColegio, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise deleteGradoColegio(Long idGrado, Long idColegio);
		public EmptyPromise deleteGradoColegio(Long idGrado, Long idColegio, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise deleteGradoColegio(Long idGrado, Long idColegio, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public Grado getGrado(Long idGrado);
		public Grado getGrado(Long idGrado, JsProcedure1<Grado> callback);
		public Grado getGrado(Long idGrado, JsProcedure1<Grado> callback,JsProcedure1<ErrorObject> error);

		public Materia getMateria(Long idMateria);
		public Materia getMateria(Long idMateria, JsProcedure1<Materia> callback);
		public Materia getMateria(Long idMateria, JsProcedure1<Materia> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise updateGrado(Long idGrado, Grado body);
		public EmptyPromise updateGrado(Long idGrado, Grado body, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise updateGrado(Long idGrado, Grado body, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise updateMateria(Long idMateria, Materia body);
		public EmptyPromise updateMateria(Long idMateria, Materia body, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise updateMateria(Long idMateria, Materia body, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public MateriaGrado newMateriaGrado(MateriaGrado body);
		public MateriaGrado newMateriaGrado(MateriaGrado body, JsProcedure1<MateriaGrado> callback);
		public MateriaGrado newMateriaGrado(MateriaGrado body, JsProcedure1<MateriaGrado> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise deleteMateriaGrado(Long idMateria, Long idGrado, Long idColegio);
		public EmptyPromise deleteMateriaGrado(Long idMateria, Long idGrado, Long idColegio, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise deleteMateriaGrado(Long idMateria, Long idGrado, Long idColegio, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public EscalaNotas getEscalaNotas(Long idColegio);
		public EscalaNotas getEscalaNotas(Long idColegio, JsProcedure1<EscalaNotas> callback);
		public EscalaNotas getEscalaNotas(Long idColegio, JsProcedure1<EscalaNotas> callback,JsProcedure1<ErrorObject> error);

		public EscalaNotas setEscalaNotas(Long idColegio, EscalaNotas body);
		public EscalaNotas setEscalaNotas(Long idColegio, EscalaNotas body, JsProcedure1<EscalaNotas> callback);
		public EscalaNotas setEscalaNotas(Long idColegio, EscalaNotas body, JsProcedure1<EscalaNotas> callback,JsProcedure1<ErrorObject> error);
}
	public static interface UserEP {
		public User getMyInfo();
		public User getMyInfo(JsProcedure1<User> callback);
		public User getMyInfo(JsProcedure1<User> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise login(LoginCredentials body);
		public EmptyPromise login(LoginCredentials body, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise login(LoginCredentials body, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise saveAndroidId(String idAndroid);
		public EmptyPromise saveAndroidId(String idAndroid, JsProcedure1<EmptyPromise> callback);
		public EmptyPromise saveAndroidId(String idAndroid, JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public EmptyPromise logout();
		public EmptyPromise logout(JsProcedure1<EmptyPromise> callback);
		public EmptyPromise logout(JsProcedure1<EmptyPromise> callback,JsProcedure1<ErrorObject> error);

		public Array<Persona> getPersonasConDocumento(String documento);
		public Array<Persona> getPersonasConDocumento(String documento, JsProcedure1<Array<Persona>> callback);
		public Array<Persona> getPersonasConDocumento(String documento, JsProcedure1<Array<Persona>> callback,JsProcedure1<ErrorObject> error);
}
}